// 导入依赖包
import url from "url";

// 暴露分页函数
export function pagingFn(ctx,arr) {
    // 拿到 页码 和 每页展示数
    const queryUrl = url.parse(ctx.url, true).query;
    // 默认的页码
    const page = parseInt(queryUrl.page) || 1;
    // 默认的每页展示数
    const limit = parseInt(queryUrl.limit) || 10;

    // 用于分页返回对象列表
    let newArr;

    // 总页数计算需要确保limit不是0以避免除以0的情况
    const totalPages = limit !== 0 ? Math.ceil(arr.length / limit) : 0;

    // 判断页面 大于 0 并且 不会大于总页码
    if (page > 0 && page <= totalPages) {
        // 起始索引
        const nowIndex = (page - 1) * limit;
        // 结尾索引
        const maxIndex = Math.min(nowIndex + limit, arr.length);
        // 选取范围内的学生到新对象列表
        newArr = arr.slice(nowIndex, maxIndex);

        // 返回 分页好的数据
        return newArr;
    } else {
        // 重定向 逻辑
        return "redirect";
    }
}